#define PCRE2_CODE_UNIT_WIDTH 8
#define SIRI_MAX_SIZE_ERR_MSG 1024
-#define SIRIDB_BUILD_DATE __DATE__ " " __TIME__
#define MAX_NUMBER_DB 4
typedef enum
#define SIRIDB_VERSION_MINOR 0
#define SIRIDB_VERSION_PATCH 30
+/*
+ * Use SIRIDB_VERSION_PRE_RELEASE for alpha release versions.
+ * This should be an empty string when building a final release.
+ * Examples: "-alpha-0" "-alpha-1", ""
+ */
+#define SIRIDB_VERSION_PRE_RELEASE "-alpha-0"
+
+#if DEBUG
+#define SIRIDB_VERSION_BUILD_RELEASE "+debug"
+#else
+#define SIRIDB_VERSION_BUILD_RELEASE ""
+#endif
+
#define SIRIDB_STRINGIFY(num) #num
#define SIRIDB_VERSION_STR(major,minor,patch) \
SIRIDB_STRINGIFY(major) "." \
SIRIDB_STRINGIFY(minor) "." \
SIRIDB_STRINGIFY(patch)
-#define SIRIDB_VERSION SIRIDB_VERSION_STR( \
- SIRIDB_VERSION_MAJOR, \
- SIRIDB_VERSION_MINOR, \
- SIRIDB_VERSION_PATCH)
+#define SIRIDB_VERSION SIRIDB_VERSION_STR( \
+ SIRIDB_VERSION_MAJOR, \
+ SIRIDB_VERSION_MINOR, \
+ SIRIDB_VERSION_PATCH) \
+ SIRIDB_VERSION_PRE_RELEASE \
+ SIRIDB_VERSION_BUILD_RELEASE
-#define SIRIDB_MAINTAINER "Jeroen van der Heijden <jeroen@transceptor.technology>"
-#define SIRIDB_HOME_PAGE "http://siridb.net"
+#define SIRIDB_CONTRIBUTERS \
+ "https://github.com/SiriDB/siridb-server/contributors"
+#define SIRIDB_HOME_PAGE \
+ "https://siridb.net"
int siri_version_cmp(const char * version_a, const char * version_b);
/* initialize points dictionary */
siridb_points_init();
-#if DEBUG
- log_warning("Starting SiriDB Server (%s-DEBUG-RELEASE-%s)",
- SIRIDB_VERSION,
- SIRIDB_BUILD_DATE);
-#else
-
/* start server */
log_info("Starting SiriDB Server (version: %s)", SIRIDB_VERSION);
-#endif
+
/* initialize SiriDB mutex (used for the siridb_list) */
if (uv_mutex_init(&siri.siridb_mutex))
{
{
if (!qp_add_type(packer, QP_ARRAY_OPEN) &&
!qp_add_string(packer, SIRIDB_VERSION) &&
-#if DEBUG
- !qp_add_string(packer, "DEBUG") &&
-#else
- !qp_add_string(packer, "RELEASE") &&
-#endif
- !qp_add_string(packer, SIRIDB_BUILD_DATE))
+ !qp_add_string(packer, SIRIDB_VERSION_PRE_RELEASE) &&
+ !qp_add_string(packer, SIRIDB_VERSION_BUILD_RELEASE))
{
*packaddr = packer;
return CPROTO_ACK_ADMIN_DATA;
if (siri_args.version)
{
printf(
- "SiriDB Server %s\n"
- "Build date: %s\n"
- "Maintainer: %s\n"
+ "SiriDB Server %s%s%s\n"
+ "Contributers: %s\n"
"Home-page: %s\n",
-#ifndef DEBUG
SIRIDB_VERSION,
-#else
- SIRIDB_VERSION "-DEBUG-RELEASE",
-#endif
- SIRIDB_BUILD_DATE,
- SIRIDB_MAINTAINER,
+ SIRIDB_VERSION_PRE_RELEASE,
+ SIRIDB_VERSION_BUILD_RELEASE,
+ SIRIDB_CONTRIBUTERS,
SIRIDB_HOME_PAGE);
exit(EXIT_SUCCESS);
static void SIRI_destroy(void)
{
-#ifndef DEBUG
- log_info("Closing SiriDB Server (version: %s)", SIRIDB_VERSION);
-#else
- log_warning("Closing SiriDB Server (%s-DEBUG-RELEASE-%s)",
- SIRIDB_VERSION,
- SIRIDB_BUILD_DATE);
-#endif
+ log_warning("Closing SiriDB Server (version: %s)", SIRIDB_VERSION);
/* stop the event loop */
uv_stop(siri.loop);
int siri_version_cmp(const char * version_a, const char * version_b)
{
long int a, b;
+ int i = 3;
char * str_a = (char *) version_a;
char * str_b = (char *) version_b;
- while (1)
+ while (i--)
{
a = strtol(str_a, &str_a, 10);
b = strtol(str_b, &str_b, 10);
{
return a - b;
}
- else if (!*str_a && !*str_b)
+ else if (!*str_a || !*str_b)
{
return 0;
}
- else if (!*str_a)
- {
- return -1;
- }
- else if (!*str_b)
- {
- return 1;
- }
str_a++;
str_b++;
}
- /* we should NEVER get here */
- assert(0);
return 0;
}
#include <siri/version.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+int old_version_cmp(const char * version_a, const char * version_b)
+{
+ long int a, b;
+
+ char * str_a = (char *) version_a;
+ char * str_b = (char *) version_b;
+
+ while (1)
+ {
+ a = strtol(str_a, &str_a, 10);
+ b = strtol(str_b, &str_b, 10);
+
+ printf("%ld - %ld\n", a, b);
+
+ if (a != b)
+ {
+ return a - b;
+ }
+ else if (!*str_a && !*str_b)
+ {
+ return 0;
+ }
+ else if (!*str_a)
+ {
+ return -1;
+ }
+ else if (!*str_b)
+ {
+ return 1;
+ }
+ str_a++;
+ str_b++;
+ }
+
+ /* we should NEVER get here */
+ _assert (0);
+ return 0;
+}
+
+
int main()
{
test_start("version");
+ /* alpha verioning should be ignored by version compare */
_assert (siri_version_cmp("1.0.0", "2.0.0") < 0);
+ _assert (siri_version_cmp("1.0.0", "2.0.0-alpha-0") < 0);
+ _assert (siri_version_cmp("2.0.0", "1.0.0") > 0);
_assert (siri_version_cmp("2.0.0", "1.0.0") > 0);
_assert (siri_version_cmp("2.2.0", "2.32.0") < 0);
_assert (siri_version_cmp("2.32.0", "2.2.0") > 0);
_assert (siri_version_cmp("2.0.5", "2.0.22") < 0);
_assert (siri_version_cmp("2.0.22", "2.0.5") > 0);
- _assert (siri_version_cmp("2.0", "2.0.0") < 0);
- _assert (siri_version_cmp("2.0.2", "2.0") > 0);
- _assert (siri_version_cmp("a", "") > 0);
- _assert (siri_version_cmp("", "b") < 0);
+ _assert (siri_version_cmp("2.0.5-alpha-0", "2.0.22") < 0);
+ _assert (siri_version_cmp("2.0.22-alpha-0", "2.0.5") > 0);
+ _assert (siri_version_cmp("a", "") == 0);
+ _assert (siri_version_cmp("", "b") == 0);
_assert (siri_version_cmp("", "") == 0);
- _assert (siri_version_cmp("2.0.0", "2.0.0") == 0);
+ _assert (siri_version_cmp("2.0.30", "2.0.30") == 0);
+ _assert (siri_version_cmp("2.0.30-alpha-1-debug", "2.0.30") == 0);
+ _assert (siri_version_cmp("2.0.30-alpha-1", "2.0.30-alpha-0") == 0);
+
+ /* old version compare function should not break with -alpha versions */
+ _assert (old_version_cmp("2.0.5-alpha-0", "2.0.22") < 0);
+ _assert (old_version_cmp("2.0.22-alpha-0", "2.0.5") > 0);
+ _assert (old_version_cmp("2.0.30-alpha-1-debug", "2.0.30") > 0);
+ /* This last one is < 0 since -1 < -0 */
+ _assert (old_version_cmp("2.0.30-alpha-1", "2.0.30-alpha-0") < 0);
return test_end();
}